Field
This disclosure relates generally to network devices such as switches and routers, and more specifically, to avoiding flooding of packets from a data plane to a control plane of a network device.
Related Art
Network devices such as switches and routers form the backbone of modern data networks. Data packets arrive at such network devices and are forwarded to their destinations using information found in the data packet. A switch generally forwards a data packet using the destination media access control (MAC) address found in the packet. A router generally forwards a data packet using the destination internet protocol (IP) address found in the packet. For example, typical actions of a switch provide for a data frame being received by switch at an input port, a MAC address table being checked for the source and destination, the MAC address table being updated if necessary (e.g., the MAC address table not having one of the MAC addresses), and forwarding the data frame from an output port.
In order to provide more flexibility in network data forwarding decision making, including ease of including additional protocols beyond MAC and IP addressing, programmable networks have been introduced. Programmable networks utilize flow forwarding, rather than switch paths or the like. Data flows of a stream of packets are associated with flow tables, which define the routes data packets follow and the processing those data packets receive. Flows are defined, in part, by a control plane that can be implemented on a device separate from the network switch or router, and data packets are received and transmitted by a data plane that is incorporated in the network switch or router.
The data plane and the control plane processors communicate with one another, for example, when a data packet associated with a previously unknown flow (to the data plane) arrives at the network device. The data plane then sends the data packet, or information associated with the data packet, to the control plane for processing. The control plane determines the parameters for the flow associated with the packet, and provides that back to the data plane for entry into flow tables and processing of flow packets. During the period from which the data packet information is provided to the control plane until the routing information is received by the data plane and entered into the flow tables, all packets which are associated with the unknown flow are not processed. Instead, each new packet of that flow may be provided to the control plane, thereby overloading the communication network between the data plane and the control plane, and also potentially loading down the control plane processes. It is therefore desirable to provide a mechanism to reduce this communication between the data plane and the control plane, in order to decrease the load on the communication channel and on the control plane processes.
The use of the same reference symbols in different drawings indicates identical items unless otherwise noted. The figures are not necessarily drawn to scale.